#ifndef __ATMOS_NetworkConnectionInfo_h__
#define __ATMOS_NetworkConnectionInfo_h__

#include "ATMOS_Common.h"

namespace ATMOS {

//! Describes a network manager's connection
struct AtmosExport NetworkConnectionInfo
{
	NetworkConnectionInfo();
	NetworkConnectionInfo( const NetworkConnectionInfo &src );
	~NetworkConnectionInfo();

	//! save the values to file -- NOTE: does not include password
	void loadFromFile( const std::string &filename );
	//! load the values from file -- NOTE: does not include password
	void saveToFile( const std::string &filename );

	//! the optional password associated with this connection
	std::string connectionPassword;

	//! the IP address of the server
	std::string serverIP;
	//! the port used by the server
	unsigned int serverPort;
	//! the port used by the client
	unsigned int clientPort;
	//! the length of time to wait on an unresponsive peer before considering it disconnected
	uint connectionTimeOut;
	//! the max number of simultaneous connections for this network manager
	ushort maxConnections;
	//! whether to occasionally ping network peers to determine their status
	bool occasionalPing;
	//! the length of time to process events before shutting down
	uint shutdownTime;
	uint unreliableTimeout;
};

} // end namespace ATMOS

#endif